Optimization of energy use through model-based simulations

ABSTRACT

A facility implementing systems and/or methods for achieving energy consumption/production and cost goals is described. The facility identifies various components of an energy system and assesses the environment in which those components operate. Based on the identified components and assessments, the facility generates a model to simulate different series/schedules of adjustments to the system and how those adjustments will effect energy consumption or production. Using the model, and based on identified patterns, preferences, and forecasted weather conditions, the facility can identify an optimal series or schedule of adjustments to achieve the user&#39;s goals and provide the schedule to the system for implementation. The model may be constructed using a time-series of energy consumption and thermostat states to estimate parameters and algorithms of the system. Using the model, the facility can simulate the behavior of the system and, by changing simulated inputs and measuring simulated output, optimize use of the system.

TECHNICAL FIELD

The present disclosure is directed to optimization of energy usage basedon users goals and preferences, and more particularly to optimization ofenergy usage using model-based simulations;

BACKGROUND

As non-renewable energy resources are being depleted and energy costsbecome increasingly more expensive and volatile, consumers continue toseek out ways to reduce their energy consumption and energy costs. Manyenergy systems (e.g., energy-consuming or energy-producing systems)allow users to establish automated schedules that dictate how and whenthe energy systems should be used. For example, a heating and coolingsystem may allow a user to set temperatures for different times of day,such as a “wake” time and temperature, an “away” time and temperature, a“return” time and temperature, and a “sleep” time and temperature. Atthe predetermined times the system adjusts to the predeterminedtemperatures. However, these systems require a user to both configurethem properly and, more importantly, adjust the times and temperaturesto adapt to changing needs and concerns with respect to energyconsumption or production. These systems do not take into account theamount of energy used, or the cost of the energy used. An intelligentsystem for adapting to changing energy costs and energy needs whileachieving user goals with respect to energy consumption or productionand costs is desired.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an environment in which thefacility may operate.

FIG. 2 is a block diagram illustrating components of the facility.

FIG. 3 is a block diagram illustrating the processing of an optimizemodule of the facility.

FIG. 4 is a block diagram illustrating the processing of a learn moduleof the facility.

FIG. 5 is a block diagram illustrating the processing of a detectpatterns module of the facility.

DETAILED DESCRIPTION

A facility implementing systems and/or methods for achieving energyconsumption or production and cost goals is described. The facilityidentifies various components of an energy system, such as a heating,ventilation, and air condition (HVAC) system, load-control switch, hotwater heater, electric vehicle, electric appliance, solar system, etc.and assesses the environment in which those components operate, such asthe thermal capacitance of a building in which a HVAC system operates,current and forecasted weather conditions, and energy costs. Based onthe identified components and assessments, the facility generates asimulation model that can be used to simulate different time-basedseries or schedules of adjustments to the energy system and how thoseadjustments will effect energy consumption. For example, the facilitymay use the simulation model to calculate the amount of energy consumedor the cost of the energy consumed for different heating/coolingschedules for an HVAC system. Based on user patterns and preferences(e.g., when users consume energy, whether a user desires to reduceenergy costs and/or energy consumption, when users prefer certainappliances to operate), the facility can identify an optimal series orschedule of adjustments for the user and provide the schedule to thesystem for implementation. As another example, the facility may use thesimulation model to calculate the amount of energy produced or the valueof the energy produced. Additionally, the facility can configure thesystem to operate in accordance with a demand profile received from autility.

For example, the simulations may show that “heating/cooling schedule A”causes the HVAC system to consume 50 kilowatt hours (kWh) of energy perday at an average cost of 5¢ per kWh ($2.50 per day) whileheating/cooling schedule B causes the HVAC system to consume 60 kWh perday at an average cost of 40 per kWh ($2.40 per day). Accordingly, auser looking to reduce energy costs may choose schedule B while a userlooking to reduce energy consumption may choose schedule A. In thismanner, the facility can optimize the HVAC system to achieve user goalswith respect to energy use. As another example, a utility may provide ademand schedule and encourage users to implement the schedule to receivediscounts or other compensation. The facility can, using the demandschedule, configure the system to comply with the energy consumptionpreferences of the utility.

In some embodiments, the facility operates in a learning mode toidentify components of an energy system. When working in conjunctionwith an HVAC system, for example, the facility may query a thermostatand/or other components to identify the different components in thesystem, such as air-conditioning units, sensors, photovoltaic systems(e.g., roof-mounted photovoltaic systems), fans, pumps, etc. In otherexamples, the facility may provide a user interface through which a usercan manually identify the various components in the system. As anotherexample, when working in conjunction with an electric vehicle, thefacility may identify the electric vehicle and its battery.

In addition to identifying components while in the learning mode, thefacility may also perform tests to identify attributes of the energysystem and the environment in which the system operates. For example,the facility may perform a number of tests on an HVAC system, such as aheating step test, a free-float test, and a cooling step test whilemonitoring different areas (e.g., rooms) of the surrounding environmentto determine where and how fast the various areas acquire or lose heat.Based on the information collected during the monitoring phase, thefacility can employ system identification techniques, such as thosedescribed in Applied System Identification by Jer-Nan Juang (PrenticeHall, 1994), which is herein incorporated by reference, to determineattributes of the energy system and environment, such as an enveloperesistance, thermal capacitance, thermal resistance, and heatingcapacity of a building in which the HVAC system operates. One skilled inthe art will understand that the facility may determine additionalattributes of the environment, such as occupancy schedule, internalgains, the schedule of internal gains, window area, window properties,wall/roof/floor area, wall/roof/floor insulation, wall/roof/floorthermal capacitance, wall/roof/floor thermal state (temperature) heatingand cooling set points and their schedule, heating equipment efficiency,fan energy consumption, cooling equipment efficiency, infiltration,exterior shading, photovoltaic system efficiency, photovoltaic systemorientation, electric vehicle capacity, electric vehicle charging rate,electric vehicle state of charge, appliance energy consumption,appliance schedule, and so on. The facility may also determine ranges ofoperating conditions for various components of the energy system, suchas the available settings for each fan, blower, vent, heating unit,cooling unit, etc. and the amount of energy that the system and eachcomponent of the system consumes while in use, such as how much energyan HVAC system and/or an air conditioner consume while cooling abuilding from one temperature set point to another temperature set pointor how much energy the HVAC system, central heating unit, fans, blowers,etc. consume while heating from one set point to another. As anotherexample, the facility may perform a number of tests and measurements onthe battery of an electric vehicle to determine the battery's chargecapacity, the battery's charge rate, etc.

In some embodiments, the facility determines patterns and preferences ofindividuals who interact with the environment, such as when residents ofa home awake or return home from work, when employees of a businessarrive and leave for work, the preferred temperature conditions duringvarious stages, etc., and retrieves information about externalconditions that may impact the use of the energy system, such as weatherconditions/forecasts and energy pricing information. The facility maydetermine these patterns by monitoring sensors and/or componentsdistributed through the system and surrounding environment or receivingdirect input from a user.

In some embodiments, the facility generates a simulation model for theenergy system and surrounding environment based on the attributesidentified while in learning mode. The simulation model specifies theamount of energy used by the energy system to transition between variousstates—such as transitions between different thermostat set points,change levels, etc.—using different components of the energy systemunder different operating conditions. For example, an HVAC system may beconfigurable to heat a building using a different combination ofcomponents (e.g., fans and blowers) and different settings for thosecomponents, such as operating a central heating unit and/or blower atfull capacity while heating a building, operating the central heatingunit at 50% while operating fans and blowers at 75%, and so on, eachcombination of settings offering different levels of energy consumption.In addition to (or alternatively to) the combinations of components andsettings described herein, different combinations of components andsettings can be used during the process of generating a simulationmodel.

Using the simulation model and the determined user preferences, thefacility can simulate a number of different schedules for the energysystem, each schedule specifying times for transitioning components ofthe energy system between states and operating conditions, such as atime to turn on a central heating unit and an operating level (e.g.,full capacity, 25%, 75%) for the central heating unit while heating abuilding before individuals (e.g., residents, employees, or customers)arrive/depart. In some examples, the facility performs an optimizationtechnique on the simulation model (e.g., a meta-heuristic optimizationtechnique, the Particle Swarm Optimization technique described by J.Kennedy and R. Eberhart in Particle Swarm Optimization (Proc. IEEEInternational Conf. on Neural Networks (Perth, Australia), IEEE ServiceCenter, Piscataway, N.J., 1995), which is herein incorporated byreference), to identify an optimal schedule. During the simulations, thefacility may employ user preferences, such as minimum and maximumtemperatures or minimum and maximum energy consumption levels, as limitsfor acceptable schedules to prevent the system from operating underconditions that a user would find unacceptable. After performing thesimulations, the facility can determine, for each simulated schedule,both 1) the amount of energy consumed by the energy system if theschedule were to be implemented and 2) if energy pricing information isknown to the facility, the cost of implementing the schedule. Based onuser preferences, the facility can choose a schedule for implementation,such as the schedule with the lowest cost or energy consumption.Additionally, the facility can choose a schedule for implementation thatbest satisfies a utility objective (e.g., demand reduction) with noadverse impact to the user(s).

FIG. 1 is a block diagram illustrating an environment in which thefacility may operate in some embodiments. The environment 100 includesbuilding 110, HVAC system 112, facility 115, and a plurality of sensorsets 111. Building 110 may represent any type of building, such as ahouse, office building, stadium, apartment complex, etc. Sensor sets111, which communicate with the facility, may include any number andtype of sensor for detecting and measuring operating and environmentalconditions, such as thermostats, thermometers, motion detectors, windowsor door sensors (e.g., sensors to detect whether windows and doors areopen), sensors for detecting fan/blower speed, central heating unitsettings, occupancy sensors, sensors measuring site-generated energyproduction, audio/video recording devices, etc. Although in this exampleeach area of building 110 includes a set of sensors, one skilled in theart will recognize that the facility may be used in an environment withany number of sensors and/or areas with sensors. HVAC system 112represents the heating and cooling system of building 110 and includes,for example, heating components (not shown), cooling components (notshown), conduit (not shown), vents (not shown), etc. used for heatingand cooling building 110. Environment 100 also includes utilities 120,which provide energy services (e.g., electricity), weather information,and other utility services to building 110. In some examples, thefacility may also download information from the utilities pertaining toenergy costs information, such as cost schedules (e.g., how much energycosts per unit at different times of the day, month, year) or demandschedules that indicate the utility's preferred energy consumptionlevels at various times of the day, month, year, etc. Building 110 andfacility 115 may communicate with utilities 120 via network 130.Although the facility is shown in conjunction with an HVAC system inthis example, one skilled in the art will understand that the techniquesdescribed herein can be used to detect and determine various attributesof any energy system, such as a dishwasher, washer, dryer, electricvehicle (and/or charger), solar panel systems, etc., or any combinationthereof, and optimize the energy consumption of these systems.

FIG. 2 is a block diagram illustrating components of the facility insome embodiments. In this example, facility 200 includes learn module201, optimize module 202, detect patterns module 203, sensor data store204, user preferences store. 205, simulation model store 206, andschedule store 207. Learn module 201 is invoked by the facility todetect and determine information about an associated energy system andthe environment in which the system operates. Optimize module 202 isinvoked by the facility to optimize an energy system based on attributesof the system, environment, and user preferences. Detect patterns module203 is invoked by the facility to detect patterns of individuals whointeract with the system, such as when and where the individualsinteract with the system (e.g., which rooms the individuals occupy, whenwindows are open, when and how thermostats in various rooms areadjusted) and patterns of the system and surrounding environment (e.g.,when people arrive/depart, weather patterns). Sensor data store 204stores information collected from each of the various sensor sets, suchas data about the temperature of a room over time, the presence ofindividuals within those rooms, when and how various components of thesystem are adjusted, etc.

User preferences store 205 stores user preferences, such as preferredtemperature settings (which may be time-based if a user prefersdifferent temperatures based on the time of day, month, or year),preferred energy consumption goals (e.g., a preference to reduceconsumption or costs), etc. Simulation model store 206 stores attributesof a simulation model generated based on attributes of an energy systemand the surrounding environment. Schedule store 207 stores schedules forthe system, such as the schedule that optimizes the system for a user'spreferences. This schedule can be provided to the system to facilitateimplementation of the user preferences.

The computing devices on which the disclosed facility is implemented mayinclude a central processing unit, memory, input devices (e.g., keyboardand pointing devices), output devices (e.g., display devices), andstorage devices (e.g., disk drives). The memory and storage devices arecomputer-readable media that may be encoded with computer-executableinstructions that implement the technology, which means acomputer-readable medium that contains the instructions. In addition,the instructions, data structures, and message structures may be storedor transmitted via a data transmission medium, such as a signal on acommunications link and may be encrypted. Various communications linksmay be used, such as the Internet, a local area network, a wide areanetwork, a point-to-point dial-up connection, a cell phone network, andso on.

The disclosed facility may be described in the general context ofcomputer-executable instructions, such as program modules, executed byone or more computers or other devices. Generally, program modulesinclude routines, programs, objects, components, data structures, and soon that perform particular tasks or implement particular abstract datatypes. Typically, the functionality of the program modules may becombined or distributed as desired in various embodiments.

Many embodiments of the technology described herein may take the form ofcomputer-executable instructions, including routines executed by aprogrammable computer. Those skilled in the relevant art will appreciatethat aspects of the technology can be practiced on computer systemsother than those shown and described herein. Embodiments of thetechnology may be implemented in and used with various operatingenvironments that include personal computers, server computers, handheldor laptop devices, multiprocessor systems, microprocessor-based systems,programmable consumer electronics, digital cameras, network PCs,minicomputers, mainframe computers, computing environments that includeany of the above systems or devices, and so on. Moreover, the technologycan be embodied in a special-purpose computer or data processor that isspecifically programmed, configured or constructed to perform one ormore of the computer-executable instructions described herein.Accordingly, the terms “computer” or “system” as generally used hereinrefer to any data processor and can include Internet appliances andhand-held devices (including palm-top computers, wearable computers,cellular or mobile phones, multi-processor systems, processor-based orprogrammable consumer electronics, network computers, mini computers andthe like). Information handled by these computers can be presented atany suitable display medium, including a CRT display or LCD.

The technology can also be practiced in distributed environments, wheretasks or modules are performed by remote processing devices linkedthrough a communications network. In a distributed computingenvironment, program modules or subroutines may be located in local andremote memory storage devices. Aspects of the technology describedherein may be stored or distributed on computer-readable media,including magnetic or optically readable or removable computer disks, aswell as distributed electronically over networks. Data structures andtransmissions of data particular to aspects of the technology are alsoencompassed within the scope of the technology.

FIG. 3 is a block diagram illustrating the processing of an optimizemodule in some embodiments. The optimize module is invoked by thefacility to optimize an energy system based on attributes of the system,environment, and user preferences. In block 310, the facility collectsuser preferences. For example, the module may retrieve input, such asthermostat settings and related scheduling information, to determine auser's preferred temperature setting at various times of the day. Insome cases, the module may retrieve this information by querying one ormore modules of the system, such as thermostats placed throughout abuilding. In some cases, the facility may provide a user interfacethrough which a user may enter their preferences. Additionally, a usermay specify their preferred energy consumption goals, such as reducingconsumption, reducing costs, or some combination thereof.

In block 320, the facility retrieves a weather forecast, which mayinclude forecasted temperatures and weather conditions for apredetermined number of hours, days, etc. In block 330, the moduleretrieves current and/or forecasted energy cost information (e.g., acost schedule indicating a flat rate of 7.5¢ per kWh, a cost scheduleindicating 5¢ per kWh for the first 10 kWh per day and 10¢ for eachadditional kWh per day, a cost schedule indicating various prices foreach hour, or a range of times, of the day). In block 340, the modulegenerates a simulation model based on the attributes detected anddetermined while in the learning mode. In block 350, the module performssimulations based on the generated simulation model, each simulationproviding a schedule and estimated energy consumption over the course ofthe schedule.

In block 360, the module identifies the schedule with the preferredenergy consumption (e.g., the schedule resulting in the lowest costbased on the retrieved cost information or the schedule resulting in thelowest overall consumption of energy). For example, the schedule mayspecify that a central heating unit of an HVAC system is to be turned onat 80% of capacity at 6:00 am with blowers operating at 75% and thenturned off at 8:00 pm and then turned on again at 70% capacity at 4:45pm before being turned off at 11:00 pm, In block 370, the facilityprovides the identified schedule to the system for implementation andthen loops back to block 320. For example, the facility may communicatea schedule of set points to a thermostat for implementation. In someembodiments, the optimize process occurs frequently throughout the dayto incorporate new and/or changed information into the optimization,such as occupant overrides, updated forecasts (e.g., weather and cost),schedule changes, etc. Furthermore, this process may occur on demandaccording to information provided by an energy provider, such as demandresponse events.

FIG. 4 is a block diagram illustrating the processing of a learn modulein some embodiments. The facility invokes the learn module to detect anddetermine various attributes of the associated energy system. In thisexample, the module is invoked to determine and detect the attributes ofheating and cooling system, such as an HVAC system. In block 410, thelearn module identifies devices and components of the system by, forexample, querying the system to provide this information, receivingmanual input from a user, or performing know system identificationtechniques. In block 420, the learn module performs a heating step testby heating up the building in which the HVAC system operates andmonitoring various conditions of the system and surrounding environment.

In block 430, the learn module collects data to assess how the systemand environment changes during the heating step test, such as the rateat which the environment heats up (i.e. stores and retains heat), andthat can be used to determine attributes of the system and environment.The heating step test may include, for example, heating the environmentat one degree (or more) increments at a time based on the temperaturemeasured at a predetermined location and collecting data from each ofthe sensors as the environment heats, including an indication of theamount of energy consumed by the system as the environment transitionsbetween temperatures. In some cases, the learn module may perform theheating step test multiple times using different operatingconfigurations (e.g., different operating levels—such as 0% to 100%—fora central heating unit, fans, blowers, vents, etc.) or under differentoperating conditions. In decision block 435, if the heating step test iscomplete then the learn module continues at block 440, else the moduleloops back to block 430 to collect additional data generated during theheating step test.

In block 440, the learn module performs a free float test. During thefree float test, the facility turns off the HVAC system to monitor howthe environment retains, loses, or gains heat without input from theHVAC system. In block 450, the learn module collects data from theavailable sensors to assess how the system and environment changesduring the free float step test and that can be used to determineattributes of the system and environment. In decision block 455, if thefree float test is complete, then the learn module continues at block460, else the module loops back to block 450 to collect additional datagenerated during the free float test.

In block 460, the module performs a cooling step test to collect datawhile cooling down the environment. In block 470, the learn modulecollects data to assess how the system and environment changes duringthe cooling step test, such as the rate at which the environment coolsdown and where heat is lost, and that can be used to determineattributes of the system and environment. The cooling step test mayinclude, for example, cooling the environment at one degree (or more)increments, based on, for example, the temperature measured at apredetermined location and collecting data from each of the sensors asthe environment cools, including an indication of the amount of energyconsumed by the system as the environment transitions betweentemperatures. In some cases, the learn module may perform the coolingtest multiple times using different operating configurations (e.g.,different operating levels—such as 0% to 100%—for an air conditioner,fans, blowers, vents, etc.) or under different operating conditions. Indecision block 475, if the cooling step test is complete, then themodule continues at decision block 480, else the module loops back toblock 470 to collect additional data generated during the cooling steptest. In decision block 480, if testing is complete then the learnmodule terminates processing, else the module loops back to block 420 tocontinue testing.

FIG. 5 is a block diagram illustrating the processing of a detectpatterns module in some embodiments. The facility invokes the detectpatterns module to detect a) patterns of individuals who interact withthe system, such as when and where the individuals interact with thesystem, and b) patterns of the system and surrounding environment. Thefacility may invoke the module periodically (e.g., once per hour, onceper day, once per week, once per month), upon request from a user,and/or in response to changes to the system, such as an adjustment to athermostat or a modified schedule. In blocks 510-545 the detect patternsmodule loops through each of the devices available to the module tocollect information from those devices. The devices may include, forexample, sensors, appliances, thermostats, HVAC components, electricvehicles, and so on.

In block 520, the detect patterns module collects data from the device,such as its current operating condition, current configuration, and soon. In decision block 530, if the detect patterns module determines thatone or more individuals are present in the vicinity of the device (e.g.,based on data collected from a presence or proximity sensor) then themodule continues at block 535, else the module continues at block 540.In block 535, the detect patterns module attempts to identify theindividual(s) using, for example, an object carried by an individual,such as an RFID tag, voice or face recognition techniques if audio orvideo data is available, and so on. In this manner, the facility canassociate different individuals with preferred settings. For example, ifthe facility determines that a thermostat is regularly adjusted to 68degrees when a particular individual enters a room, the facility mayassociate the particular individual with a preferred temperature of 68degrees. Furthermore, by detecting individuals the module allows thefacility to detect patterns among individuals with respect to theirinteractions with the system, such as when they arrive and leave.

In block 540, the detect patterns module stores the data collected fromthe device, time information (e.g., a time stamp), and an indication ofthe presence of any individual. In block 550, if there are additionaldevices from which data has not been collected, then the detect patternsmodule selects the next device and loops back to block 510. In decisionblock 560, if the module is to continue checking devices, then themodule continues at block 570, else processing of the module completes.In block 570, the detect patterns module waits a predetermined period oftime (e.g., 1 milliseconds, 1 hour, 24 hours, 7 days, a month) and thenloops back to block 510 to continue processing data from the devices.

From the foregoing, it will be appreciated that specific embodiments ofthe technology have been described herein for purposes of illustration,but that various modifications may be made without deviating from thedisclosure. The facility can include additional components or features,and/or different combinations of the components or features describedherein. Additionally, while advantages associated with certainembodiments of the new technology have been described in the context ofthose embodiments, other embodiments may also exhibit such advantages,and not all embodiments need necessarily exhibit such advantages to fallwithin the scope of the technology. For example, the facility mayoperate in conduction with an energy-producing system Accordingly, thedisclosure and associated technology can encompass other embodiments notexpressly shown or described herein.

I/we claim:
 1. A method for achieving energy consumption goals for aheating, ventilation, and air condition (HVAC) system, the methodcomprising: while performing a heating step test of the HVAC system,monitoring a plurality of conditions of the HVAC system; whileperforming a free-float test of the HVAC system, monitoring theplurality of conditions of the HVAC system; while performing a coolingstep test of the HVAC system, monitoring the plurality of conditions ofthe HVAC system; generating a simulation model of the HVAC system atleast in part by, determining an envelope resistance parameter of theHVAC system based on the plurality of conditions of the HVAC systemmonitored during the tests, determining a thermal capacitance parameterof the HVAC system based on the plurality of conditions of the HVACsystem monitored during the tests, determining a heating capacityparameter of the HVAC system based on the plurality of conditions of theHVAC system monitored during the tests, and determining a coolingcapacity parameter of the HVAC system based on the plurality ofconditions of the HVAC system monitored during the tests; generating aplurality of schedules of adjustments applicable to the HVAC system;retrieving a weather forecast; for each of the generated plurality ofschedules of adjustments, using the generated simulation model of theHVAC system and the retrieved weather forecast, simulating the effect ofthe schedule of adjustments on a measure of energy consumption;identifying the schedule of adjustments with an optimal measure ofenergy consumption; and facilitating implementation, by the HVAC system,of the identified schedule of adjustments.
 2. The method of claim 1wherein the plurality of conditions of the HVAC system includes a stateof a heating stage relay of the HVAC system.
 3. The method of claim 1wherein the plurality of conditions of the HVAC system includes a stateof a cooling stage relay of the HVAC system.
 4. The method of claim 1wherein the plurality of conditions of the HVAC system includes a stateof a fan or pump of the HVAC system.
 5. The method of claim 1 whereinthe HVAC system is installed in a building and the plurality ofconditions of the HVAC system includes a temperature of at least onearea of the building.
 6. The method of claim 5 wherein the temperatureof at least one area of the building is determined via at least onesensor placed in the at least one area.
 7. The method of claim 1 whereinthe measure of energy consumption is energy use.
 8. The method of claim1 wherein the measure of energy consumption is energy cost.
 9. Acomputer-readable medium storing instructions that, if executed by acomputing system having a processor, cause the computing system toperform operations comprising: performing a test on an energy-consumingsystem; monitoring a plurality of conditions of the energy-consumingsystem while the test is being performed; generating a simulation modelof the energy-consuming system based on the monitored conditions;generating a plurality of time-based series of adjustments applicable tothe energy-consuming system; for each of the generated plurality oftime-based series of adjustments, using the generated simulation model,simulating the effect of the time-based series of adjustments on ameasure of energy consumption; identifying the time-based series ofadjustments with an optimal measure of energy consumption; andfacilitating implementation, by the energy-consuming system, of theidentified time-based series of adjustments.
 10. The computer-readablemedium of claim 9, the operations further comprising: retrieving aschedule of energy costs.
 11. The computer-readable medium of claim 10,the operations further comprising: for each of the generated pluralityof time-based series of adjustments, calculating a cost for thetime-based series of adjustments based on the retrieved schedule ofenergy costs.
 12. The computer-readable medium of claim 11, whereinidentifying the time-based series of adjustments with an optimal measureof energy consumption is based at least in part on the calculated costs.13. The computer-readable medium of claim 9 wherein the energy-consumingsystem is an HVAC system.
 14. The computer-readable medium of claim 9wherein the test includes a heating step test.
 15. The computer-readablemedium of claim 9 wherein the test includes a free float test.
 16. Thecomputer-readable medium of claim 9 wherein the test includes a coolingstep test.
 17. The computer-readable medium of claim 9, wherein theenergy-consuming system comprises a plurality of appliances.
 18. Thecomputer-readable medium of claim 17, wherein the plurality ofappliances include at least one of a water heater, a dishwasher, anair-conditioner, a refrigerator, a photovoltaic system, and arechargeable battery.
 19. A system, having a processor, comprising: acomponent configured to perform a test on a set of appliances; acomponent configured to monitor conditions of the set of applianceswhile the test is being performed; a component configured to generate asimulation model of the set of appliances based on the monitoredconditions; a component configured to generate a plurality of schedulesof adjustments applicable to the set of appliances; a componentconfigured to, for each of the generated plurality of schedules ofadjustments, simulate the effect of the schedules of adjustments on ameasure of energy consumption based on the generated simulation model;and a component configured to facilitate implementation, by the set ofappliances, of at least one of the schedules of adjustments.
 20. Thesystem of claim 19, further comprising: a component configured toretrieve a weather forecast, wherein the simulated effects are furtherbased on the retrieved weather forecast.
 21. The system of claim 19,further comprising: a component configured to retrieve user preferences,wherein the simulated effects are further based on the retrieved userpreferences.
 22. An apparatus for optimizing an energy-consuming systemto achieve energy consumption goals of a user, the apparatus comprising:means performing a learning mode to detect conditions of theenergy-consuming system; means for generating a simulation model for theenergy-consuming system; and means for optimizing the energy-consumingsystem based on the generated simulation model.
 23. A computer-readablemedium storing instructions that, if executed by a computing systemhaving a processor, cause the computing system to perform operationscomprising: performing a test on an energy-production system; monitoringa plurality of conditions of the energy-production system while the testis being performed; generating a simulation model of theenergy-production system based on the monitored conditions; generating aplurality of time-based series of adjustments applicable to theenergy-production system; for each of the generated plurality oftime-based series of adjustments, using the generated simulation model,simulating the effect of the time-based series of adjustments on ameasure of energy production; identifying the time-based series ofadjustments with an optimal measure of energy production; andfacilitating implementation, by the energy-production system, of theidentified time-based series of adjustments.